$(function () {//加载表格
    var accountId = getCommbotreeValue("accountId");
    //没有选择 就查询所有的下拉框的
    if (isNull(accountId)) {
        accountId = getCommbotreeAllValue("accountId");
    }
    $('#dg').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: finance + '/voucher/listInfo',
        pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        title: "凭证列表",
        pageSize: pageSize,
        pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            selfdate: $("#selfdate").combobox("getValue"),
            accountId: accountId
        },
        frozenColumns: [[
            {field: "id", title: "编号", hidden: true},]],
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'fdate', title: '凭证日期'},
            {
                field: 'account', title: '基金名称', formatter: function (value, row, index) {
                    return value.name
                }
            },
            {field: 'num', title: '凭证编号'},
            {field: 'subjectCode', title: '科目代码'},
            {field: 'subjectName', title: '科目名称'},
            {field: 'securitiesCode', title: '证券代码'},
            {field: 'sequence', title: '凭证顺序'},
            {field: 'remark', title: '凭证摘要'},
            {field: 'currency', title: '凭证币种'},
            {
                field: 'frate', title: '凭证汇率', formatter: function (value, row, index) {
                    return getNumber(value, 8)
                }
            },
            {
                field: 'drandcr', title: '借贷方向', align: 'center', formatter: function (value, row, index) {
                    if ("DR" == value) {
                        return "借方";
                    } else if ("CR" == value) {
                        return "贷方";
                    }
                }
            },
            {
                field: 'money', title: '凭证金额', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {
                field: 'amount', title: '凭证数量', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {
                field: 'price', title: '凭证价格', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {field: 'bizdate', title: '业务日期'},
            {field: 'source', title: '凭证来源'},
            {field: 'ftype', title: '凭证类型'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        //双击事件
        onDblClickRow: function (rowIndex, rowData) {
            view(rowData)
        }
    });
    initData();
    $('#selSource').combobox({
        onChange: function (n, o) {
            getVoucherSelType(n) // 获取凭证类型
        }
    });
    $('#source').combobox({
        onChange: function (n, o) {
            getVoucherType(n) // 获取凭证类型
        }
    }).datagrid("columnMoving");
})

// 初始化加载下拉框的值
function initData() {
    $.ajax({
            type: "post",
            url: finance + "/voucher/init",
            dataType: "json",
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var lsetlists = data.data.lsetlists;
                var voucherSourceList = data.data.voucherSourceList;
                if (!isNull(lsetlists)) {
                    $("#accountId").combotree("loadData", lsetlists);
                }
                if (!isNull(voucherSourceList)) {
                    //  $('#source').combobox("loadData", voucherSourceList);
                    // $('#source').combobox('selectedIndex', 0); //选中第一个
                    var voucherSourceList2 = data.data.voucherSourceList2;
                    voucherSourceList2.unshift({"showmsg": "==全部==", "value": ''});
                    $('#selSource').combobox("loadData", voucherSourceList2);
                }
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

// 获取凭证来下的凭证类型
function getVoucherSelType(source) {
    $.ajax({
            type: "post",
            url: finance + "/voucherTemplate/getVoucherType",
            data: {
                source: source
            },
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var voucherTypeList = data.data.voucherTypeList;
                voucherTypeList.unshift({"showmsg": "==全部==", "value": ''});
                $('#selFtype').combobox("loadData", voucherTypeList);
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

function getVoucherType(source) {
    $.ajax({
            type: "post",
            url: finance + "/voucherTemplate/getVoucherType",
            data: {
                source: source
            },
            success: function (data) {
                if (successcode != data.code) {
                    return errorHandle(data);
                }
                var voucherTypeList = data.data.voucherTypeList;
                //voucherTypeList.unshift({"showmsg": "==请选择==", "value": ''});
                $('#ftype').combobox("loadData", voucherTypeList);
            }, error: function (data) {
                $.messager.progress('close');
                $.messager.alert('系统提示', "系统异常，请稍后重试！", 'error');
            }
        }
    );
}

//搜索的方法
function doSearch() {
    var queryParams = $("#dg").datagrid("options").queryParams;
    var accountId = getCommbotreeValue("accountId");
    if (isNull(accountId)) { //没有选择基金 就查询所有的下拉框的
        queryParams["accountId"] = getCommbotreeAllValue("accountId");
    } else {
        queryParams["accountId"] = accountId;
    }
    queryParams["selfdate"] = $("#selfdate").combobox("getValue");
    queryParams["remark"] = $("#selRemark").val();
    queryParams["ftype"] = getCommboxValue("selFtype");
    $("#dg").datagrid("options").queryParams = queryParams;
    $("#dg").datagrid("load");
}

/**
 *  查看方法
 */
function view(rowData) {
    $('#myform').form('disableValidation');//清除验证样式
    $('#dlg').dialog({
        title: "查看凭证信息",
        buttons: [{
            text: '返回',
            iconCls: 'icon-back',
            handler: function () {
                $('#dlg').dialog('close');
            }
        }
        ]
    }).dialog('open');
    listInfoByNum(rowData.num, rowData.account.id);
}

/**
 * 查询核算项的类别信息
 */
function listInfoByNum(num, accountId) {
    $('#dgVoucher').datagrid({
        loadMsg: '数据加载中，请稍后...',
        url: finance + '/voucher/listInfoByNum',
        //pagination: true,
        singleSelect: false,//如果为true，则只允许选择一行。
        // title: "科目辅助项信息列表",
        //  pageSize: pageSize,
        // pageList: pageList,
        checkOnSelect: true,//当用户点击行的时候该复选框就会被选中或取消选中。
        striped: true,//是否显示斑马线效果。
        rownumbers: true,// 显示一个行号列
        fitColumns: false,//真正的自动展开/收缩列的大小，以适应网格的宽度，防止水平滚动。
        queryParams: {
            num: num,
            accountId: accountId
        },
        columns: [[
            {field: 'itemid', title: 'Order ID', width: 80, checkbox: true},
            {field: 'fdate', title: '凭证日期'},
            {field: 'num', title: '凭证编号'},
            {field: 'subjectCode', title: '科目代码'},
            {field: 'subjectName', title: '科目名称'},
            {field: 'sequence', title: '凭证顺序'},
            {field: 'remark', title: '凭证摘要'},
            {field: 'currency', title: '凭证币种'},
            {
                field: 'frate', title: '凭证汇率', formatter: function (value, row, index) {
                    return getNumber(value, 8)
                }
            },
            {
                field: 'drandcr', title: '借贷方向', align: 'center', formatter: function (value, row, index) {
                    if ("DR" == value) {
                        return "借方";
                    } else if ("CR" == value) {
                        return "贷方";
                    }
                }
            },
            {
                field: 'money', title: '凭证金额', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {
                field: 'amount', title: '凭证数量', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {
                field: 'price', title: '凭证价格', formatter: function (value, row, index) {
                    return getNumber(value, 4)
                }
            },
            {field: 'bizdate', title: '业务日期'},
            {field: 'ftype', title: '凭证类型'}
        ]],
        loadFilter: function (data) { //加载后台数据
            if (successcode != data.code) {
                return errorHandle(data);
            }
            return data.data;
        },
        onClickCell: function (index, field, value) {
            $(this).datagrid('beginEdit', index);
            $(this).datagrid('getEditor', {index: index, field: field});
        }
    }).datagrid("columnMoving");
}
